package com.lnking.lnkingplace.service;

import com.lnking.lnkingplace.model.dto.place.PlaceCountDto;
import com.lnking.lnkingplace.model.dto.place.PlacePositionDto;
import com.lnking.lnkingplace.model.entity.IsolationPlace;
import com.lnking.lnkingplace.model.entity.PlaceInfo;
import com.lnking.lnkingplace.model.request.place.*;
import com.lnking.starter.mybatis.service.ICustomService;

import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author zhangqt
 * @since 2022-08-18
 */
public interface IPlaceInfoService extends ICustomService<PlaceInfo> {


    /**
     * 查询所有街道
     * @return
     */
    List<PlaceCountDto> queryStreetCount(String street);

    /**
     * 查询统计
     * @param street
     * @return
     */
    List<PlaceCountDto> queryCount(String street);

     /**
     * 查询所有类型
     * @return
     */
    List<String> getType();

    /**
     * 查询所有街道
     * @return
     */
    List<String> getStreet();

    /**
     * 删除场所
     * @param id
     */
    void delete(String id);

    /**
     * 创建
     * @param params
     */
    void add(PlaceAddRequest params) throws Exception;

    /**
     * 更新
     * @param params
     */
    void update(PlaceUpdateRequest params) throws Exception;

    /**
     * 修改新增流程状态
     * @param params
     */
    void updateProcessAddStatus(PlaceUpdateProcessAddStatus params);

    /**
     * 导出excel
     */
    void exportExcel(PlaceListRequest params, HttpServletResponse response)throws Exception;

    /**
     * 修改营业状态
     */
    void updateOperatingStatus(PlaceUpdateStatusRequest params);

    /**
     * 查询详情
     * @param id
     * @return
     */
    PlaceInfo getDetails(String id);

    PlaceInfo check(String placeName);

    void set();

    List<PlacePositionDto> getPosition(String type,String street);

        Object managementList(ManagementPlaceListRequest params);
}
